<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <!-- 
        1.分类
            基本（值）类型
                - String：任意字符串
                - Number：任意的数字
                - Boolean：true false
                - undefined：undefined
                - null：null

            对象（引用）类型
                - Object：任意对象，都是Object类型
                - Function：一种特别的对象（可以执行(调用)）
                - Array：一种特别的对象(数值下标,内部数据是有序的)

        2.判断
            typeof
                可以判断：undefined/ 数值/ 字符串/ 布尔值/ function
                不能判断：null与object  object与array
                        typeof 检查null 和 array 时，都返回object ⭐
            instanceof
                判断对象的具体类型
            ===
                可以判断：undefined， null
     -->
</body>
</html>
<script type="text/javascript">
    // 1.基本
    // 
    var a;
    console.log(a, typeof a === "undefined" , a === undefined );//undefined true true
    console.log(undefined ==='undefined'); // false

    a =3;
    console.log(typeof a==="number"); // true

    a="dadaguai";
    console.log(typeof a === "string"); // true

    a=true;
    console.log(typeof a === "boolean"); // true

    a=null;
    console.log(typeof a, a === null); // object true
    console.log("--------")
    // 2.对象 
    var b1 ={
        b2:[1,'abc',console.log],
        b3:function(){
            console.log('b3')
            return function(){
                return 'dadaguai'
            }
        }
    }
    console.log(b1 instanceof Object,b1 instanceof Array) // true false
    console.log(b1.b2 instanceof Array, b1.b2 instanceof Object) // true true
    console.log(b1.b3 instanceof Function, b1.b3 instanceof Object) // true true 

    console.log('------')
    console.log(typeof b1.b2);

    console.log(typeof b1.b3 === "function") // true
    console.log(typeof b1.b2[2] === 'function') // true
    b1.b2[2](4);
    console.log(b1.b3()()) 
</script>